home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
626-637
/
disk_632
/
attacks
/
sources
/
attacksgraphics.def
< prev
next >
Wrap
Text File
|
1992-05-06
|
12KB
|
213 lines
DEFINITION MODULE attacksgraphics;
(* I am using the data hiding capabilities of modula-2 to simplify my *)
(* life for this project. Anything that the main or other routines could *)
(* want to do graphically will be through routines declared here. To *)
(* sum, this is the heart of the graphics routines, simplified to only *)
(* the logical necessities. *)
(* *)
(* Scott Biggs *)
FROM header
IMPORT boardtype, playertype, squaretype, boardrange, pointercode,
movetype, printmsgtype;
FROM SYSTEM
IMPORT ADDRESS;
FROM Intuition
IMPORT WindowPtr;
(**************************************************************************)
PROCEDURE InitializeScreen() : BOOLEAN;
(* Starts the graphix running. *)
(* Sets up all the graphics variables AND draws the first graphics *)
(* that will be presented. It returns true IF all the actions worked, *)
(* false otherwise. *)
(* *)
(* INPUT *)
(* n/a *)
(* *)
(* OUTPUT *)
(* Returns a boolean value that tells IF the operation was *)
(* succussful or not. If successful, the screen (along *)
(* with the accompanying graphics) is started. *)
(**************************************************************************)
PROCEDURE CleanupGraphics;
(* Stops the graphix AND deallocates all graphix allocated *)
(* memory. It assumes that the graphics HAS been succussfully initi- *)
(* ated. *)
(* *)
(* INPUT *)
(* n/a *)
(* *)
(* OUTPUT *)
(* n/a *)
(**************************************************************************)
PROCEDURE ShowAbout;
(* Simply displays a message about the programmer and then waits for *)
(* a mouse click to then erase this new display and return to the old *)
(* one. *)
(**************************************************************************)
PROCEDURE ChangePointer (code : pointercode);
(* This changes the mouse pointer. The code determines what the *)
(* pointer is changed to. *)
(* *)
(* INPUT *)
(* code This variable is of the enumerated type, *)
(* pointercode. It consists of RedCircle, *)
(* BlueCircle, and Default. The Default code *)
(* tells this routine to restore the pointer *)
(* to whatever it was when the program was *)
(* started. *)
(* *)
(* OUTPUT *)
(* The mouse pointer is immediately changed to the desired *)
(* pointer. *)
(**************************************************************************)
PROCEDURE PrintMsg (msg : printmsgtype);
(* Prints the message at the top of the screen. This procedure should *)
(* not be confused with the procedure PrintTurn, which displays who's *)
(* turn it is to play. *)
(* *)
(* INPUT *)
(* msg This is which message to display. *)
(* *)
(* OUTPUT *)
(* The screen is changed to display the desired message. *)
(**************************************************************************)
PROCEDURE ShowScore (redscore : CARDINAL; bluescore : CARDINAL);
(* Displays the scores. *)
(* *)
(* INPUT *)
(* redscore The number of squares occupied by the red *)
(* player. *)
(* *)
(* bluescore The number of squares occupied by the blue *)
(* player. *)
(* *)
(* OUTPUT *)
(* The screen is modified to display the scores. *)
(**************************************************************************)
PROCEDURE PrintTurn (player : playertype);
(* Displays whose turn it is by the message on the top of the *)
(* screen *)
(* *)
(* INPUT *)
(* player The player whose turn it now is. *)
(* *)
(* OUTPUT *)
(* The screen is modified to display whose turn it is. *)
(**************************************************************************)
PROCEDURE DrawBoard (board : boardtype);
(* Replaces the current display with the given board. *)
(* *)
(* INPUT *)
(* board A variable OF boardtype that describes the *)
(* contents of every location of a board. *)
(* *)
(* OUTPUT *)
(* The screen is modified to display the contents of the *)
(* input data. *)
(***********************************************************************)
PROCEDURE DrawSquare (xloc : boardrange; yloc : boardrange;
square : squaretype);
(* This routine modifies only a single square, rather than the *)
(* whole board like the DrawBoard routine does. Considering the upper *)
(* left corner as square (1,1), this routine will replace the given *)
(* square with the specified item (either a block, empty, red, or *)
(* blue). *)
(* *)
(* INPUT *)
(* xloc, yloc These two numbers describe the location *)
(* of the square to change. *)
(* *)
(* square This tells the routine what to change *)
(* the square to. *)
(* *)
(* *)
(* OUTPUT *)
(* The display is change so that only the square *)
(* indicated looks like the new type. *)
(***********************************************************************)
PROCEDURE HighlightSquare (xloc : boardrange; yloc : boardrange;
player : playertype);
(* This routine highlights the given square in the color of the *)
(* specified player. It is assumed that checking has already been *)
(* made so that the highlighting makes sense. *)
(* *)
(* INPUT *)
(* xloc, yloc These two numbers describe the location *)
(* of the square to change. *)
(* *)
(* player This tells the routine what colors to *)
(* use. *)
(* *)
(* *)
(* OUTPUT *)
(* The display is change so that only the square *)
(* indicated looks highlighted. *)
(***********************************************************************)
PROCEDURE UnHighlightSquare (xloc : boardrange; yloc : boardrange;
player : playertype);
(* This routine UNhighlights the given square. It undoes the *)
(* effects of HighlightSquare. Similarly, it assumes that checking *)
(* has already been done so that unhighlighting makes sense. *)
(* *)
(* INPUT *)
(* xloc, yloc These two numbers describe the location *)
(* of the square to change. *)
(* *)
(* player This is the color of the square to UN- *)
(* highlight. *)
(* *)
(* OUTPUT *)
(* The display is change so that only the square *)
(* indicated looks UNhighlighted. *)
(***********************************************************************)
(* !!!!! WARNING !!!!! *)
(* *)
(* The stuff after this message should only be imported by the *)
(* module, ataxxinput. Only that module needs to know about these *)
(* things! *)
(***********************************************************************)
VAR
mywindowptr : WindowPtr;
END attacksgraphics.